// 注册用户的处理函数 
// exports.regUser = (req, res) => { 
//     res.send('reguser OK') 
// }

// exports.loginUser = (req, res) => { 
//     res.send('login OK')
// }

const db = require('../db/index')
const bcrypt = require('bcryptjs')
// console.log(db,66666)


/* 导入jsonwebtoken */
const jwt = require('jsonwebtoken')


const regUser = (req, res) => {
    // var  sql=`select  *  from  ev_users`
    // db.query(sql,(error, results, fields)=>{
    //     console.log(results,888)
    //     res.send(results) 
    // })
    // 接收表单数据 
    const userinfo = req.body
    // 判断数据是否合法 
    // if (!userinfo.username || !userinfo.password) {
    //     //return res.send({ status: 1, message: '用户名或密码不能为空！' })
    //     return res.cc('用户名或密码不能为空！')
    // }

    var sql = `select  *  from  ev_users where  username=?`
    db.query(sql, [userinfo.username], (error, results, fields) => {
        if (error) res.cc(error)  //  Error
        console.log(results, 888)
        if (results.length > 0) {
            //  数据库中根你要查找的有相同的
            return res.send({ status: 1, msg: '用户名已存在' })
        }
        // res.send(results) 
        /* 数据库中没有这个用户名====将数据密码进行处理然后写入数据库中 */
        userinfo.password = bcrypt.hashSync(userinfo.password, 10);
        //console.log(userinfo,77777)
        //var sql2=`insert  into ev_users(username,password) values(?,?)`

        /* 插入数据 */
        // db.query(sql2, [userinfo.username,userinfo.password], (error2, results2, fields2) => {
        //     //console.log(results2,888)
        //     if(results2.affectedRows==1){
        //         res.send({
        //             status:0,
        //             msg:'注册用户成功'
        //         })
        //     }
        // })


        var sql2 = `insert  into ev_users set ?`

        //db.query(sql2,{username:admin3,password:123456} , (error2, results2, fields2) => {
        //错误写法：db.query(sql2,[userinfo.username,userinfo.password] , (error2, results2, fields2) => {
        db.query(sql2, userinfo, (error2, results2, fields2) => {
            //console.log(results2,888)
            if (results2.affectedRows == 1) {
                // res.send({
                //     status: 0,
                //     msg: '注册用户成功'
                // })
                res.cc('注册用户成功', '0')
            }
        })


    })



    // res.send({ status: 1, message: '注册成功' }) 

}


const config = require('../config')


const loginUser = (req, res) => {
    /*1-根据username查询数据  */
    const userinfo = req.body
    const sql = `select * from ev_users where username=?`
    db.query(sql, userinfo.username, function (error, results) {
        if (error) res.cc(error)  //  Error
        if (results.length != 1) {
            //  表示没有查询到
            return res.cc('用户名不存在')
        }
        /*2-校验密码  */
        var flag = bcrypt.compareSync(userinfo.password, results[0].password)
        if (!flag) {
            //  密码匹配不成功
            return res.cc('用户密码不正确')
        }

        //  说明用户名和密码都正确===返回token   userinfo={username:admin,password:123456}
        var token = jwt.sign({ ...results[0], password: '', user_pic: '' }, config.jwtSecretKey, { expiresIn: '2h' });
        // res.cc(token,'0')
        res.send({
            status: 0,
            message: '登录成功！', // 为了方便客户端使用 Token，在服务器端直接拼接上 Bearer 的前缀 
            token: 'Bearer ' + token
        })
        //   {username:admin,password:123456}

    })
    // res.send('login OK')
}

module.exports = {
    regUser,
    loginUser

}